package com.df.base.core.page;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.df.common.utils.ServletUtils;

/**
 * 表格数据处理
 *
 * @author dunfeng
 */
public class TableSupport {
  /** 当前记录起始索引 */
  public static final String PAGE_NUM = "pageNum";

  /** 每页显示记录数 */
  public static final String PAGE_SIZE = "pageSize";

  /** 排序列 */
  public static final String ORDER_BY_COLUMN = "orderByColumn";

  /** 排序的方向 "desc" 或者 "asc". */
  public static final String IS_ASC = "isAsc";

  /** 封装分页对象 */
  public static PageDomain getPageDomain() {
    PageDomain pageDomain = new PageDomain();
    pageDomain.setPageNum(ServletUtils.getParameterToInt(PAGE_NUM));
    pageDomain.setPageSize(ServletUtils.getParameterToInt(PAGE_SIZE));
    pageDomain.setOrderByColumn(ServletUtils.getParameter(ORDER_BY_COLUMN));
    pageDomain.setIsAsc(ServletUtils.getParameter(IS_ASC));
    return pageDomain;
  }

  public static PageDomain buildPageRequest() {
    return getPageDomain();
  }

  public static <T> IPage<T> buildIPageRequest() {
    PageDomain pageDomain = getPageDomain();
    if (pageDomain.getPageNum() == null) {
      pageDomain.setPageNum(1);
    }
    if (pageDomain.getPageSize() == null) {
      pageDomain.setPageSize(10);
    }
    Page<T> page = new Page<T>(pageDomain.getPageNum(), pageDomain.getPageSize());
    // TODO: 2020/9/7 增加排序
    if ("asc".equals(pageDomain.getIsAsc())) {
    } else {

    }
    return page;
  }
}
